libxl: remove useless smac in the nic_info structure
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 30 Dec 2009 12:42:01 +0000 (12:42 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 30 Dec 2009 12:42:01 +0000 (12:42 +0000)
the string representing the mac is easily recomputed from the mac
array

Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
tools/libxl/libxl.c
tools/libxl/libxl.h
tools/libxl/xl.c

index 6784eced7d66ba87efc889a987c62e8a41a7aaa0..7e1c7836b6bb21c790f1b5afea6ebf35b6459b73 100644 (file)
@@ -748,9 +748,12 @@ static char ** libxl_build_device_model_args(struct libxl_ctx *ctx,
         }
         for (i = 0; i < num_vifs; i++) {
             if (vifs[i].nictype == NICTYPE_IOEMU) {
+                char *smac = libxl_sprintf(ctx, "%02x:%02x:%02x:%02x:%02x:%02x",
+                                           vifs[i].mac[0], vifs[i].mac[1], vifs[i].mac[2],
+                                           vifs[i].mac[3], vifs[i].mac[4], vifs[i].mac[5]);
                 flexarray_set(dm_args, num++, "-net");
                 flexarray_set(dm_args, num++, libxl_sprintf(ctx, "nic,vlan=%d,macaddr=%s,model=%s",
-                            vifs[i].devid, vifs[i].smac, vifs[i].model));
+                            vifs[i].devid, smac, vifs[i].model));
                 flexarray_set(dm_args, num++, "-net");
                 flexarray_set(dm_args, num++, libxl_sprintf(ctx, "tap,vlan=%d,ifname=%s,bridge=%s",
                             vifs[i].devid, vifs[i].ifname, vifs[i].bridge));
@@ -2303,7 +2306,6 @@ void init_nic_info(libxl_device_nic *nic_info, int devnum)
     nic_info->mac[3] = 1 + (int) (0x7f * (rand() / (RAND_MAX + 1.0)));
     nic_info->mac[4] = 1 + (int) (0xff * (rand() / (RAND_MAX + 1.0)));
     nic_info->mac[5] = 1 + (int) (0xff * (rand() / (RAND_MAX + 1.0)));
-    asprintf(&(nic_info->smac), "%02x:%02x:%02x:%02x:%02x:%02x", nic_info->mac[0], nic_info->mac[1], nic_info->mac[2], nic_info->mac[3], nic_info->mac[4], nic_info->mac[5]);
     nic_info->ifname = NULL;
     nic_info->bridge = "xenbr0";
     nic_info->script = "/etc/xen/scripts/vif-bridge";
index cc6ecee4d630326505c1f45456bfea57e8ef28a0..057ec3a0842e8937753ed3759d7538c8f33bb3d4 100644 (file)
@@ -199,7 +199,6 @@ typedef struct {
     int mtu;
     char *model;
     uint8_t mac[6];
-    char *smac;
     struct in_addr ip;
     char *bridge;
     char *ifname;
index fa92ae3f4de957f402129ed615995355e9904916..3439eb9ab098e7ad5b9612654a5760feed11b814 100644 (file)
@@ -122,7 +122,6 @@ static void printf_info(libxl_domain_create_info *c_info,
         printf("mtu %d\n", vifs[i].mtu);
         printf("model %s\n", vifs[i].model);
         printf("mac %02x:%02x:%02x:%02x:%02x:%02x\n", vifs[i].mac[0], vifs[i].mac[1], vifs[i].mac[2], vifs[i].mac[3], vifs[i].mac[4], vifs[i].mac[5]);
-        printf("smac %s\n", vifs[i].mac);
     }
 
     for (i = 0; i < num_pcidevs; i++) {
@@ -399,7 +398,6 @@ static void parse_config_file(const char *filename,
                     (*vifs)[*num_vifs].model = strdup(p2 + 1);
                 } else if (!strcmp(p, "mac")) {
                     char *p3 = p2 + 1;
-                    (*vifs)[*num_vifs].smac = strdup(p3);
                     *(p3 + 2) = '\0';
                     (*vifs)[*num_vifs].mac[0] = strtol(p3, NULL, 16);
                     p3 = p3 + 3;
@@ -732,7 +730,6 @@ start:
 
     close(logfile);
     for (i = 0; i < num_vifs; i++) {
-        free(vifs[i].smac);
         free(vifs[i].ifname);
     }
     free(disks);